When coded digital data symbols are transmitted via a radio link, the transmitted signals typically propagate over multiple paths, so that the receiver receives multiple instances of the same signal at different times, i.e. with different delays. The data symbol energy from all these multipath components may be combined in the receiver. In Code Division Multiple Access (CDMA) and Wideband Code Division Multiple Access (WCDMA) systems the energy of the different received portions of the signal may be utilized in the receiver by using a so-called RAKE receiver.
In these systems spreading and despreading are used. Data is transmitted from the transmitter side using a spread spectrum modulation technique wherein the data is scattered across a wide range of frequencies. Each channel is assigned a spreading code to spread the data across the frequency range. For WCDMA systems such a channelization code is chosen from the so called Orthogonal Variable Spreading Factor code tree. The spread data is then randomized by a pseudo-random noise (PN) code, which is composed of e.g. a binary sequence of 1's and 0's, called “chips”, which are distributed in a pseudo-random manner and have noise-like properties. The number of chips used to spread one data bit, i.e. chips/bit, may vary, and it depends, at least in part, on the data rate of the channel and the chip rate of the system.
In the receiver the received signal is despread and demodulated with the same spreading code using the same chip rate to recover the transmitted data. Furthermore, the timing of the demodulation must be synchronized, i.e. the despreading code must be applied to the received signal at the correct instant in time, which can be difficult due to the multipath effects mentioned above.
The performance of a CDMA receiver is improved by utilizing the signal energy carried by many multipath components. As mentioned, this is achieved by using a RAKE receiver, where each multipath component is assigned a despreader whose reference copy of the spreading code is delayed equally to the path delay of the corresponding multipath component. Thus, in each finger of the RAKE receiver the received chip sequence is despread (correlated) with the correspondingly delayed spreading code. The despread output symbols from each RAKE finger are then coherently combined to produce a symbol estimate.
Terminals for use with such communications networks are normally limited in size and computational resources. One result of this limitation is that there is only a limited bit width to represent data values in a terminal. Therefore, it will often be necessary to truncate or round data values before they can be handled in the terminal. In order to utilize the available bit width optimally, data values to be processed may be scaled by multiplying them with a scaling factor before they are truncated.
One example of data needing to be limited in bit width is found in the RAKE receiver of the terminal. At the outputs of the RAKE fingers the received signal for each channel (multipath component) is represented as a digital data value having one limited bit width in two's complement notation in both the real and the imaginary parts. Each received signal is then multiplied by the conjugate value of a channel estimate computed in the receiver to obtain an estimate of the sent coded data symbol. The products are then summed over the number of paths, and finally the bit stream is decoded. The conjugate value of a channel estimate also has a limited bit width in two's complement notation in both the real and the imaginary parts, which may be equal to or different from that of the received signal. When the two values are multiplied the resulting estimate will have a bit width that is equal to the sum of the two other bit widths. However, the bit width available for the processing of this estimate will also be limited and probably smaller than the sum of the two other bit widths.
Therefore, the bit width has to be reduced before the estimate is further processed, and a scaling factor may have to be selected in order to utilize the available bit width optimally. It is known to find a scaling factor by means of an optimisation algorithm that computes one fixed factor intended to be optimal in the current situation. However, since the signal level in the receiver typically changes very rapidly, a fixed factor will not be optimal, and it is generally not possible to find a scaling factor that is suitable in all situations. Adaptive algorithms that constantly update the scaling factor based on the input signals are also known.
One adaptive algorithm is disclosed in EP 1 672 807 A1, wherein a scaling factor is calculated from averaged amplitude values of estimated data symbols for a time slot and then used to select the output of the estimates for the next time slot. Although the scaling factor is changed every slot in EP 1 672 807 A1, which will affect the soft information for the entire Timing Transmission Interval (TTI) negatively, measures can be taken for good receiving and synchronisation conditions to minimise the fluctuations of the scaling factors.
If the synchronisations between the transmitter and the receiver are less than ideal due to e.g. frequency errors, or the estimated Signal-to-Interference Ratio (SIR) values are underestimated due to bad receiving conditions such as timing misalignment, too few or disturbed pilot symbols for SIR estimates etc, there is however a need for an improved algorithm which will avoid following the errors and thus degrade the performance.